#ifndef _QUEUETASK_H_
#define _QUEUETASK_H_

#include "FreeRTOS.h"
#include "queue.h"
#include "task.h"

typedef enum {
    EVENT_TYPE_1,
    EVENT_TYPE_2,
    // 可以根据需要添加更多事件类型
} EventType;

typedef void (*EventFunction)(uint8_t rc, void* arg);
typedef void (*PostFunction)(uint8_t rc, void* arg);

typedef struct {
    EventType eventType;
    EventFunction eventFunc;
    PostFunction postFunc;
    void* arg;
} QueueItem;

typedef struct {

    // 模块接口函数指针
    void (*Init)(struct QueueTaskModule* module);
    void (*SendEvent)(EventType eventType, EventFunction eventFunc, PostFunction postFunc, void* arg);
    // BaseType_t (*EventLoopTask)(void* arg);
} QueueTaskModule;

#endif // _QUEUETASK_H_